/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package view;

import java.awt.*;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;

/**
 * Cette classe définit une brique de type Texte qui hérite la classe JPanel.
 * @author NGUYEN Dac Cong Tai
 */
public class CommentaireView extends JPanel {

    /**
     * Constructeur d'une brique de type Texte.
     * @param brique l'élément contient des informations de la brique
     * @param ecran la dimension de l'écran actuel
     * @param element l'élément contient les textes pour cette brique
     * @param langue le code de la langue d'affichage
     * @throws UnsupportedEncodingException
     * @throws ParserConfigurationException
     * @throws SAXException
     * @throws IOException
     */
    public CommentaireView(Element brique, Dimension ecran, Element element, String langue) throws UnsupportedEncodingException, ParserConfigurationException, SAXException, IOException {
        Element rootEl = perl.Utility.getElement(perl.Utility.getPath(this, "/Fichiers systeme/Parametres/modele.xml"));
        //String hexa = View.getHexaColor(rootEl.getElementsByTagName("type"),"3");
        String nom = ((Element)element.getElementsByTagName("Texte").item(0)).getElementsByTagName(langue).item(0).getTextContent();
        Color color = View.decodeColor(rootEl.getElementsByTagName("type"),"3");
        setBorder(new LineBorder(color, View.thickness));
        setPreferredSize(new Dimension((ecran.width-50)/3, (ecran.height-155)/2));
        setToolTipText(((Element)element.getElementsByTagName("Brique").item(0)).getElementsByTagName(langue).item(0).getTextContent()+" "+nom);

        setLayout(new BorderLayout());
        JTextArea name = new JTextArea(nom);
        name.setForeground(View.getTextColor(color));
        name.setBackground(color);
        name.setFont(View.getTitle());
        name.setEditable(false);
        add(name, BorderLayout.NORTH);
        
        JTextArea commentaire = new JTextArea();
        commentaire.setLineWrap(true);
        commentaire.setEditable(false);
        
        String str="";
        NodeList listTextes = brique.getElementsByTagName("texte");
        for (int i=0; i<listTextes.getLength(); i++){
            Element texte = (Element) listTextes.item(i);

            NodeList listEvaluations = texte.getElementsByTagName("evaluation");

            for (int j=0; j<listEvaluations.getLength();j++){
                Element evaluation = (Element) listEvaluations.item(j);

                String date = evaluation.getAttribute("date");
                String source = evaluation.getAttribute("source");
                String contenu = evaluation.getTextContent();
                String tmp="";
                if(!date.equals("")){
                    tmp+=date+" : ";
                }
                if(!source.equals("")){
                    tmp+="[ "+source+" ] :\n";
                }
                if(!contenu.equals("")){
                    tmp+=contenu+"\n";
                }
                if(!tmp.equals("")){
                    str+="    "+tmp+"\n";
                }
            }
        }
        commentaire.setText(str);
        commentaire.setFont(View.getContent());
        JScrollPane scrollPane = new JScrollPane(commentaire);
        scrollPane.setBorder(null);
        add(scrollPane, BorderLayout.CENTER);
    }



}
